// 泛型接口： 接口也可以搭配泛型来使用，以增加其灵活性，增强其复用性
export {}

interface IdFunc {
  id:(value:string) => string
  ids:() => string[]
}

interface IdFunc2 {
  id:(value:number) => number
  ids:()=>number[]
}

interface IdFunc3 {
  id:(value:object) => object
  ids:() => object[]
}
// 泛型接口
interface IdFunc4<T> {
  id: (value: T) => T
  ids?:() => T[]
}

let IdObj:IdFunc4<number> = {
  id(value) {
    return value
  }
}

IdObj.id(1)
